home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Aminet 8
/
Aminet 8 (1995)(GTI - Schatztruhe)[!][Oct 1995].iso
/
Aminet
/
dev
/
c
/
c2local.lha
/
c2local
/
Example
/
Beispiel.dok
next >
Wrap
Text File
|
1995-06-30
|
2KB
|
94 lines
Als Beispiel soll hier das bekannt Hello-World Programm lokalisiert werden.
Dabei soll der Text "This is a short text!" durch den Text
"Dies ist ein langer Text, der eine neue Maximallänge erfordert." ersetzt
werden.
#include <stdio.h>
#include <stdlib.h>
char *p="This is a short text!";
main()
{
puts("Hello world!");
puts(p);
}
Dazu muß man zuerst einmal InitStrings() in die main-Routine einbauen.
Damit dieser Sourcecode auch noch normal compiliert werden kann fügt man
es am besten mit #ifdef und #endif geklammert ein.
#include <stdio.h>
#include <stdlib.h>
char *p="This is a short text";
main()
{
#ifdef __LOCALIZED
InitStrings();
#endif
puts("Hello world!");
puts(p);
}
Nun läßt man den Sourcecode patchen:
c2local patch hello.c name hello
Da die Länge des deutschen Textes in *p länger als die automatisch
reservierte Länge ist, muß man das Stringfile editieren:
ed hello_locale.str:
msg_0 "This is a short text!" 63
Nun compiliert man das Stringfile:
c2local compile name hello version 1 catalog hello.catalog
Jetzt kann man das lokalisierte Programm compilieren:
cd localized
sc #?.c link
Danach erstellt man die deutsche Übersetzung (nicht vergessen die Sprache
"## language deutsch" einzustellen):
copy hello_locale.ct hello_deutsch.ct
ed hello_deutsch.ct
Und daraus erzeugt man den Katalog, nachdem man die passenden Katalog-
Verzeichnisse angelegt hat.
makedir catalogs
makedir catalogs/deutsch
ccomp hello_locale.cd hello_deutsch.ct catalogs/deutsch/hello.catalog
Das war schon alles. (Genau dies wird auch durch das makelocal-script
ausgeführt.
Falls das Programm nun trotz Einstellung der Sprache deutsch keine deutschen
Strings verwendet:
- befindet sich der Katalog im richtigen Verzeichnis ?
- stimmt der Name des Katalogs ?
- stimmt die Version des Katalogs ?
- ist im .ct-file die Sprache eingetragen, Tippfehler ?
- ist noch ein alter Katalog im Speicher (evtl. "avail flush") ?